package suanfa;

public class RandomTest2 {
    public static void main(String[] args) {
        int maxTimes = 1000000;
        int minXTimes = 0;
        double x = 0.3D;
        for (int i = 0; i < maxTimes; i++) {
            if (randomX2() < x) {
                minXTimes++;
            }
        }
        System.out.println(x + "以内出现的概率是：" + (minXTimes / (double) maxTimes) * 100D + "%");
    }


    private static double randomX2() {
        //取了两次随机数，因为是等概率的(出现x以内的数概率是x)，
        //两次随机数的最大值出现x以内的数概率应该就是x的平方
        //两次出现的值都小于x的概率应该是x的的平方, 取其中的最大值返回
        //如果返回值小于x，则说明取到了x以内的数，概率是x的平方
        //如果返回值大于x，则说明没有取到x以内的数，概率是1-x的平方
        return Math.max(Math.random(), Math.random());
    }
}
